package com.jwds.digital.bios.business.core.infrastructure.dto.belt.assembler;

import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltRouteTaskStatisticsReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltRouteTaskStatisticsRespVO;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltRouteTaskStatistics;
import java.util.Objects;

/**
 * BeltRouteTaskStatistics DTO与Entity之间的相互转换
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public class BeltRouteTaskStatisticsAssembler {

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @return 实体对象
  */
  public static BeltRouteTaskStatistics dto2entity(BeltRouteTaskStatisticsReqDTO dto)  {
    if (dto == null) {
      return null;
    }
    BeltRouteTaskStatistics entity = new BeltRouteTaskStatistics();
    entity.setTaskId(dto.getTaskId());
    entity.setRouteId(dto.getRouteId());
    entity.setStartExecutionTime(dto.getStartExecutionTime());
    entity.setEndExecutionTime(dto.getEndExecutionTime());
    entity.setDuration(dto.getDuration());
    entity.setMachineScore(dto.getMachineScore());
    entity.setElectricScore(dto.getElectricScore());
    entity.setPreventScore(dto.getPreventScore());
    entity.setSpikePowerConsumption(dto.getSpikePowerConsumption());
    entity.setPeakPowerConsumption(dto.getPeakPowerConsumption());
    entity.setValleyPowerConsumption(dto.getValleyPowerConsumption());
    entity.setFlatPowerConsumption(dto.getFlatPowerConsumption());
    entity.setTotalPowerConsumption(dto.getTotalPowerConsumption());
    entity.setFirstMaterialFlowTime(dto.getFirstMaterialFlowTime());
    entity.setLastMaterialFlowTime(dto.getLastMaterialFlowTime());
    entity.setStartupNoLoadDuration(dto.getStartupNoLoadDuration());
    entity.setRunningNoLoadDuration(dto.getRunningNoLoadDuration());
    entity.setShutdownNoLoadDuration(dto.getShutdownNoLoadDuration());
    entity.setRunningLoadDuration(dto.getRunningLoadDuration());
    entity.setStartupNoLoadPower(dto.getStartupNoLoadPower());
    entity.setRunningNoLoadPower(dto.getRunningNoLoadPower());
    entity.setShutdownNoLoadPower(dto.getShutdownNoLoadPower());
    entity.setRunningLoadPower(dto.getRunningLoadPower());
    entity.setTotalTransportWeight(dto.getTotalTransportWeight());
    entity.setWorkEfficiency(dto.getWorkEfficiency());
    entity.setMotorRunningEfficiency(dto.getMotorRunningEfficiency());
    entity.setAvgLoadRate(dto.getAvgLoadRate());
    entity.setAvgNoLoadRate(dto.getAvgNoLoadRate());
    entity.setNoLoadResistance(dto.getNoLoadResistance());
    return entity;
  }

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @param entity 原实体对象
  * @return 实体对象
  */
  public static BeltRouteTaskStatistics dto2entity(BeltRouteTaskStatisticsReqDTO dto, BeltRouteTaskStatistics entity){
    if (dto == null) {
      return null;
    }
    if(Objects.nonNull(dto.getTaskId())) {
      entity.setTaskId(dto.getTaskId());
    }
    if(Objects.nonNull(dto.getRouteId())) {
      entity.setRouteId(dto.getRouteId());
    }
    if(Objects.nonNull(dto.getStartExecutionTime())) {
      entity.setStartExecutionTime(dto.getStartExecutionTime());
    }
    if(Objects.nonNull(dto.getEndExecutionTime())) {
      entity.setEndExecutionTime(dto.getEndExecutionTime());
    }
    if(Objects.nonNull(dto.getDuration())) {
      entity.setDuration(dto.getDuration());
    }
    if(Objects.nonNull(dto.getMachineScore())) {
      entity.setMachineScore(dto.getMachineScore());
    }
    if(Objects.nonNull(dto.getElectricScore())) {
      entity.setElectricScore(dto.getElectricScore());
    }
    if(Objects.nonNull(dto.getPreventScore())) {
      entity.setPreventScore(dto.getPreventScore());
    }
    if(Objects.nonNull(dto.getSpikePowerConsumption())) {
      entity.setSpikePowerConsumption(dto.getSpikePowerConsumption());
    }
    if(Objects.nonNull(dto.getPeakPowerConsumption())) {
      entity.setPeakPowerConsumption(dto.getPeakPowerConsumption());
    }
    if(Objects.nonNull(dto.getValleyPowerConsumption())) {
      entity.setValleyPowerConsumption(dto.getValleyPowerConsumption());
    }
    if(Objects.nonNull(dto.getFlatPowerConsumption())) {
      entity.setFlatPowerConsumption(dto.getFlatPowerConsumption());
    }
    if(Objects.nonNull(dto.getTotalPowerConsumption())) {
      entity.setTotalPowerConsumption(dto.getTotalPowerConsumption());
    }
    if(Objects.nonNull(dto.getFirstMaterialFlowTime())) {
      entity.setFirstMaterialFlowTime(dto.getFirstMaterialFlowTime());
    }
    if(Objects.nonNull(dto.getLastMaterialFlowTime())) {
      entity.setLastMaterialFlowTime(dto.getLastMaterialFlowTime());
    }
    if(Objects.nonNull(dto.getStartupNoLoadDuration())) {
      entity.setStartupNoLoadDuration(dto.getStartupNoLoadDuration());
    }
    if(Objects.nonNull(dto.getRunningNoLoadDuration())) {
      entity.setRunningNoLoadDuration(dto.getRunningNoLoadDuration());
    }
    if(Objects.nonNull(dto.getShutdownNoLoadDuration())) {
      entity.setShutdownNoLoadDuration(dto.getShutdownNoLoadDuration());
    }
    if(Objects.nonNull(dto.getRunningLoadDuration())) {
      entity.setRunningLoadDuration(dto.getRunningLoadDuration());
    }
    if(Objects.nonNull(dto.getStartupNoLoadPower())) {
      entity.setStartupNoLoadPower(dto.getStartupNoLoadPower());
    }
    if(Objects.nonNull(dto.getRunningNoLoadPower())) {
      entity.setRunningNoLoadPower(dto.getRunningNoLoadPower());
    }
    if(Objects.nonNull(dto.getShutdownNoLoadPower())) {
      entity.setShutdownNoLoadPower(dto.getShutdownNoLoadPower());
    }
    if(Objects.nonNull(dto.getRunningLoadPower())) {
      entity.setRunningLoadPower(dto.getRunningLoadPower());
    }
    if(Objects.nonNull(dto.getTotalTransportWeight())) {
      entity.setTotalTransportWeight(dto.getTotalTransportWeight());
    }
    if(Objects.nonNull(dto.getWorkEfficiency())) {
      entity.setWorkEfficiency(dto.getWorkEfficiency());
    }
    if(Objects.nonNull(dto.getMotorRunningEfficiency())) {
      entity.setMotorRunningEfficiency(dto.getMotorRunningEfficiency());
    }
    if(Objects.nonNull(dto.getAvgLoadRate())) {
      entity.setAvgLoadRate(dto.getAvgLoadRate());
    }
    if(Objects.nonNull(dto.getAvgNoLoadRate())) {
      entity.setAvgNoLoadRate(dto.getAvgNoLoadRate());
    }
    if(Objects.nonNull(dto.getNoLoadResistance())) {
      entity.setNoLoadResistance(dto.getNoLoadResistance());
    }
    return entity;
  }

  /**
  * 将实体对象转换为传输对象
  *
  * @param entity 实体对象
  * @return 传输对象
  */
  public static BeltRouteTaskStatisticsRespVO entity2dto(BeltRouteTaskStatistics entity) {
    if (entity == null) {
      return null;
    }
    BeltRouteTaskStatisticsRespVO dto = new BeltRouteTaskStatisticsRespVO();
    dto.setId(entity.getId());
    dto.setTaskId(entity.getTaskId());
    dto.setRouteId(entity.getRouteId());
    dto.setStartExecutionTime(entity.getStartExecutionTime());
    dto.setEndExecutionTime(entity.getEndExecutionTime());
    dto.setDuration(entity.getDuration());
    dto.setMachineScore(entity.getMachineScore());
    dto.setElectricScore(entity.getElectricScore());
    dto.setPreventScore(entity.getPreventScore());
    dto.setSpikePowerConsumption(entity.getSpikePowerConsumption());
    dto.setPeakPowerConsumption(entity.getPeakPowerConsumption());
    dto.setValleyPowerConsumption(entity.getValleyPowerConsumption());
    dto.setFlatPowerConsumption(entity.getFlatPowerConsumption());
    dto.setTotalPowerConsumption(entity.getTotalPowerConsumption());
    dto.setFirstMaterialFlowTime(entity.getFirstMaterialFlowTime());
    dto.setLastMaterialFlowTime(entity.getLastMaterialFlowTime());
    dto.setStartupNoLoadDuration(entity.getStartupNoLoadDuration());
    dto.setRunningNoLoadDuration(entity.getRunningNoLoadDuration());
    dto.setShutdownNoLoadDuration(entity.getShutdownNoLoadDuration());
    dto.setRunningLoadDuration(entity.getRunningLoadDuration());
    dto.setStartupNoLoadPower(entity.getStartupNoLoadPower());
    dto.setRunningNoLoadPower(entity.getRunningNoLoadPower());
    dto.setShutdownNoLoadPower(entity.getShutdownNoLoadPower());
    dto.setRunningLoadPower(entity.getRunningLoadPower());
    dto.setTotalTransportWeight(entity.getTotalTransportWeight());
    dto.setWorkEfficiency(entity.getWorkEfficiency());
    dto.setMotorRunningEfficiency(entity.getMotorRunningEfficiency());
    dto.setAvgLoadRate(entity.getAvgLoadRate());
    dto.setAvgNoLoadRate(entity.getAvgNoLoadRate());
    dto.setNoLoadResistance(entity.getNoLoadResistance());
    dto.setCreateTime(entity.getCreateTime());
    dto.setModifyTime(entity.getModifyTime());
    dto.setCreateUser(entity.getCreateUser());
    dto.setModifyUser(entity.getModifyUser());
    return dto;
  }

}
